function SuperClass() {
	this.books = ['JavaScript设计模式', '红宝书']
}
SuperClass.prototype.showBooks = function () {
	console.log(this.books)
}

function SubClass() {
	this.SubValue = false
}

SubClass.prototype = new SuperClass()

let s1 = new SubClass()
let s2 = new SubClass()

console.log('s1', s1)
console.log(s1.books) //['JavaScript设计模式', '红宝书']
s1.books.push('hello world')
console.log('s2', s2)
console.log(s2.books) //['JavaScript设计模式', '红宝书', 'hello world']

/**
 * JS的继承并非是传统面向对象编程语言的继承（复制继承）
 *  其是基于原型链机制实现的继承
 *   一个对象的原型 = 另外一个对象构造函数的实例
 *
 * 缺点也是非常之明显，就是由于原型链访问机制几乎没有什么限制，所以容易在不知不觉之间被我们所修改
 */
